package com.bo.enity;

import com.baomidou.mybatisplus.annotation.*;
import com.fasterxml.jackson.annotation.JsonFormat;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import lombok.EqualsAndHashCode;
import lombok.experimental.Accessors;
import org.springframework.format.annotation.DateTimeFormat;

import javax.validation.constraints.NotBlank;
import java.io.Serializable;
import java.math.BigDecimal;
import java.util.Date;

/**
 * @Description: 生产调度明细
 * @Author: outes-boot
 * @Date:   2024-11-29
 * @Version: V1.0
 */
@Data
@TableName("base_scheduling_details")
@Accessors(chain = true)
@EqualsAndHashCode(callSuper = false)
@ApiModel(value="base_scheduling_details对象", description="生产调度明细")
public class BaseSchedulingDetails implements Serializable {
    private static final long serialVersionUID = 1L;

	/**id*/
	@TableId(type = IdType.ASSIGN_ID)
    @ApiModelProperty(value = "id")
    private String id;
	/**运输单号*/
    @ApiModelProperty(value = "运输单号")
    private String transportNo;
    /**原运输单号；用来修改原运输单的转出*/
    @ApiModelProperty(value = "原运输单号")
    @TableField(exist = false)
    private String oldTransportNo;
	/**单据类型*/
    @ApiModelProperty(value = "单据类型")
    private String documentType;
	/**生产线*/
    @ApiModelProperty(value = "生产线")
    private String produceLine;
	/**产品名称*/
    @ApiModelProperty(value = "产品名称")
    private String productName;
    /**产品编码*/
    @ApiModelProperty(value = "产品编码")
    @NotBlank(message = "产品编码不能为空")
    private String productCode;
	/**车次*/
    @ApiModelProperty(value = "车次")
    private Integer trainNumber;
	/**车辆编号*/
    @ApiModelProperty(value = "车辆编号")
    private String wagon;
	/**驾驶员*/
    @ApiModelProperty(value = "驾驶员")
    private String driver;
    /**退剩转类型*/
    @ApiModelProperty(value = "退剩转类型 - 退/剩转")
    @TableField(exist = false)
    private String returnType;
    /**退剩转数量*/
    @ApiModelProperty(value = "退剩转数量 - 退/剩转")
    @TableField(exist = false)
    private BigDecimal quantity;
    /**公司*/
    @ApiModelProperty(value = "公司")
    @TableField(exist = false)
    private String company;
	/**砂浆罐号*/
    @ApiModelProperty(value = "砂浆罐号")
    private String mortarTank;
	/**供应量-计划量*/
    @ApiModelProperty(value = "供应量-计划量")
    private BigDecimal supplyQuantity;
	/**生产量*/
    @ApiModelProperty(value = "生产量")
    private BigDecimal productionQuantity;
	/**签收量*/
    @ApiModelProperty(value = "签收量")
    private BigDecimal signedQuantity;
	/**剩转*/
    @ApiModelProperty(value = "剩转")
    private BigDecimal transfer;
	/**退转*/
    @ApiModelProperty(value = "退转")
    private BigDecimal transferOut;
	/**转入*/
    @ApiModelProperty(value = "转入")
    private BigDecimal leftover;
	/**转出*/
    @ApiModelProperty(value = "转出")
    private BigDecimal returnOut;
	/**损耗*/
    @ApiModelProperty(value = "损耗")
    private BigDecimal loss;
	/**备注*/
    @ApiModelProperty(value = "备注")
    private String remark;
	/**状态*/
    @ApiModelProperty(value = "状态")
    private String status;
	/**updateBy*/
    @ApiModelProperty(value = "updateBy")
    private String updateBy;
	/**updateTime*/
	@JsonFormat(timezone = "GMT+8",pattern = "yyyy-MM-dd HH:mm:ss")
    @DateTimeFormat(pattern="yyyy-MM-dd HH:mm:ss")
    @ApiModelProperty(value = "updateTime")
    private Date updateTime;
	/**createBy*/
    @ApiModelProperty(value = "createBy")
    private String createBy;
	/**createTime*/
	@JsonFormat(timezone = "GMT+8",pattern = "yyyy-MM-dd HH:mm:ss")
    @DateTimeFormat(pattern="yyyy-MM-dd HH:mm:ss")
    @ApiModelProperty(value = "createTime")
    private Date createTime;
	/**sysOrgCode*/
    @ApiModelProperty(value = "sysOrgCode")
    private String sysOrgCode;
	/**tenantId*/
    @ApiModelProperty(value = "tenantId")
    private Integer tenantId;
	/**updateCount*/
    @ApiModelProperty(value = "updateCount")
    @Version
    private Integer updateCount;
	/**delFlag*/
    @ApiModelProperty(value = "delFlag")
    @TableLogic
    private Integer delFlag;
	/**deleteBy*/
    @ApiModelProperty(value = "deleteBy")
    private String deleteBy;
	/**deleteTime*/
	@JsonFormat(timezone = "GMT+8",pattern = "yyyy-MM-dd HH:mm:ss")
    @DateTimeFormat(pattern="yyyy-MM-dd HH:mm:ss")
    @ApiModelProperty(value = "deleteTime")
    private Date deleteTime;
	/**配比号*/
    @ApiModelProperty(value = "配比号")
    private String ratioNo;
	/**任务单号*/
    @ApiModelProperty(value = "任务单号")
    private String orderNo;
    /**任务单ID*/
    @ApiModelProperty(value = "任务单ID")
    private Integer taskId;
	/**工程名称*/
    @ApiModelProperty(value = "工程名称 ")
    private String engineeringName;
	/**工程地址*/
    @ApiModelProperty(value = "工程地址")
    private String engineeringAddress;
	/**施工单位*/
    @ApiModelProperty(value = "施工单位 ")
    private String constructionUnit;
	/**施工部位*/
    @ApiModelProperty(value = "施工部位")
    private String structuralParts;
	/**预定量*/
    @ApiModelProperty(value = "预定量")
    private BigDecimal predeterminedQuantity;
	/**转入号*/
    @ApiModelProperty(value = "转入号")
    private String transferNo;
	/**坍落度*/
    @ApiModelProperty(value = "坍落度")
    private String slumps;
    /**合同编号*/
    @ApiModelProperty(value = "合同编号")
    @TableField(exist = false)
    private String contractCode;
    /**其他金额 */
    @ApiModelProperty(value = "其他金额")
    @TableField(exist = false)
    private BigDecimal otherAmount;
    /**金额 单价*预定量*/
    @ApiModelProperty(value = "金额")
    @TableField(exist = false)
    private BigDecimal amount;
    /**单价*/
    @ApiModelProperty(value = "单价")
    @TableField(exist = false)
    private BigDecimal price;
    /**销售员*/
    @ApiModelProperty(value = "销售员")
    @TableField(exist = false)
    private String salesperson;
    /**供应时间 */
    @JsonFormat(timezone = "GMT+8",pattern = "yyyy-MM-dd")
    @DateTimeFormat(pattern="yyyy-MM-dd")
    @ApiModelProperty(value = "供应时间 -来自任务单")
    @TableField(exist = false)
    private Date supplyTime;

	/**泵号*/
    @ApiModelProperty(value = "泵号")
    private String pump;
	/**外加剂*/
    @ApiModelProperty(value = "外加剂")
    private String additive;
	/**生产批次*/
    @ApiModelProperty(value = "生产批次")
    private String productionBatch;
	/**砂浆*/
    @ApiModelProperty(value = "砂浆")
    private BigDecimal mortar;
	/**运距*/
    @ApiModelProperty(value = "运距")
    private BigDecimal distance;
	/**是否散装*/
    @ApiModelProperty(value = "是否散装")
    private Integer isBulk;
	/**泵送方式*/
    @ApiModelProperty(value = "泵送方式")
    private String isPump;
}
